#ifndef LEVEL_H
#define LEVEL_H

#include <vector>
#include <SFML/Graphics.hpp>
#include "gameobject.h"
#include "gamesettings.h"

class Level
{
public:
	Level(const sf::Vector2<float>& position, const sf::Vector2<float>& size);
	~Level() {}
	void draw(sf::RenderWindow& context);
	void setDrawBorder(bool draw);

private:
	sf::Vector2<float> mPosition, mSize;
	std::vector<std::vector<BaseObject>> mMapObjects;		// Walls, floor
	std::vector<std::vector<BaseObject>> mLevelObjects;		// Items, monsters
	bool mDrawBorderFlag;
};

namespace LevelComponents
{
	class Room
	{
	public:
		Room(const sf::Vector2<float> position, const sf::Vector2<float>& size);
		void Create(std::vector<std::vector<BaseObject>>& mapObjects);

	private:
		sf::Vector2<float> mPosition, mSize;
		int mNumDoors;
	};
};

#endif // LEVEL_H